home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 September & October / Amiga-CD 1996 #9-10.iso / amiga-magazin / jahresinhalt_89_bis_96 / arexx / showfile.rexx < prev    next >
OS/2 REXX Batch file  |  1996-01-21  |  2KB  |  65 lines

  1. /* This AREXX program is used to show an external file using multiview of OS3 
  2.    The rexx file is called from the Database program Twist with the arguments
  3.     showfilename multiviewportname pubscreenname
  4.     SHOWFILENAME:         The name of the file to show. ::CLIP is used if the clipboard must be shown.
  5.     MULTIVIEWPORTNAME: The name of the Multiview AREXX port. Each "external file object" in
  6.                       a databases record form addresses a different port so more than one instance
  7.                              of Multiview may be started from Twist
  8.     PUBSCREENNAME:      The name of the screen Twist is running on (Workbench, Twist or another 
  9.                              public screen)
  10.     
  11.     If Multiview is not available Display is used
  12.     
  13.     Copyright (C) 1994 Mermaid Group
  14. */
  15. PARSE ARG showfilename,multiviewportname,pubscreenname 
  16. multiviewportname = upper(multiviewportname)
  17.  
  18. /* get kickstart version from previous call to this script */
  19. ksvs = getclip("TwistMWVS")
  20. if ksvs == "" then 
  21. do
  22.     /* use the shell command to find if the OS version supports DataType and Multiview */
  23.     ADDRESS command "version >T:version_string"
  24.     call open 'input','T:version_string','R'
  25.     vsline = readln('input')
  26.     call close 'input'
  27.     address command 'delete quiet T:version_string'
  28.     PARSE VAR vsline "Kickstart " ksvs ",".
  29.     setclip("TwistMWVS", ksvs)
  30. end
  31.  
  32. if ksvs < 40 then 
  33.     multiviewportname = "MULTIVIEW.1"
  34.  
  35. IF ~ SHOW('p', multiviewportname) THEN 
  36. DO
  37.     /* Multiview with the named port is not currently existing so create it */
  38.     IF showfilename = "-c" THEN    filetext = "CLIPBOARD"
  39.     ELSE    filetext = "FILE " showfilename
  40.     
  41.  
  42.     IF ksvs >= 39 then 
  43.     do    
  44.         if ksvs >= 40 then ADDRESS command "run >NIL: sys:utilities/multiview " filetext " PORTNAME " multiviewportname " PUBSCREEN " pubscreenname
  45.         else 
  46.         do
  47.             /* The Multiview vs 3.0 on C4000 and C1200 does not know the PORTNAME option - thus only one file can be shown at a time */
  48.             ADDRESS command "run >NIL: sys:utilities/multiview " filetext " PUBSCREEN " pubscreenname
  49.         end
  50.     end
  51.     else address command "sys:utilities/display " showfilename " opt t=3"
  52. END
  53. ELSE    
  54. DO
  55.     /* Multiview with the named port is already running. send it a AREXX command to show this file */
  56.     ADDRESS VALUE multiviewportname
  57.     IF showfilename = "-c" THEN OPEN CLIPBOARD
  58.     ELSE    OPEN NAME showfilename
  59.     WINDOWTOFRONT
  60. END
  61.     
  62. EXIT
  63.  
  64.  
  65.